diff --git a/drivers/video/bridge/ps862x.c b/drivers/video/bridge/ps862x.c
index c8e1058..d1d22a6 100644
--- a/drivers/video/bridge/ps862x.c
+++ b/drivers/video/bridge/ps862x.c
@@ -33,7 +33,7 @@
  * @param addr_off	offset from the i2c base address for ps8622
  * @param reg_addr	register address to write
  * @param value		value to be written
- * @return 0 on success, non-0 on failure
+ * Return: 0 on success, non-0 on failure
  */
 static int ps8622_write(struct udevice *dev, unsigned addr_off,
 			unsigned char reg_addr, unsigned char value)
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
index de8b86b..c04b449 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
@@ -368,7 +368,7 @@
  * @xend:	X end position in pixels from the left
  * @yend:	Y end position  in pixels from the top
  * @clr:	Value to write
- * @return 0 if OK, -ENOSYS if the display depth is not supported
+ * Return: 0 if OK, -ENOSYS if the display depth is not supported
  */
 static int console_truetype_erase(struct udevice *dev, int xstart, int ystart,
 				  int xend, int yend, int clr)
@@ -429,7 +429,7 @@
  * not been entered.
  *
  * @dev:	Device to update
- * @return 0 if OK, -ENOSYS if not supported
+ * Return: 0 if OK, -ENOSYS if not supported
  */
 static int console_truetype_backspace(struct udevice *dev)
 {
@@ -535,7 +535,7 @@
  *
  * This searched for the first available font.
  *
- * @return pointer to the font, or NULL if none is found
+ * Return: pointer to the font, or NULL if none is found
  */
 static u8 *console_truetype_find_font(void)
 {
diff --git a/drivers/video/imx/ipu_common.c b/drivers/video/imx/ipu_common.c
index 5908b23..54d1efc 100644
--- a/drivers/video/imx/ipu_common.c
+++ b/drivers/video/imx/ipu_common.c
@@ -457,7 +457,7 @@
  * @param	dev	The device structure for the IPU passed in by the
  *			driver framework.
  *
- * @return      Returns 0 on success or negative error code on error
+ * Return:      Returns 0 on success or negative error code on error
  */
 int ipu_probe(void)
 {
@@ -574,7 +574,7 @@
  * @param       params  Input parameter containing union of channel
  *                      initialization parameters.
  *
- * @return      Returns 0 on success or negative error code on fail
+ * Return:      Returns 0 on success or negative error code on fail
  */
 int32_t ipu_init_channel(ipu_channel_t channel, ipu_channel_params_t *params)
 {
@@ -1006,7 +1006,7 @@
  * @param       v		private v offset for additional cropping,
  *				zero if not used.
  *
- * @return      Returns 0 on success or negative error code on fail
+ * Return:      Returns 0 on success or negative error code on fail
  */
 int32_t ipu_init_channel_buffer(ipu_channel_t channel, ipu_buffer_t type,
 				uint32_t pixel_fmt,
@@ -1061,7 +1061,7 @@
  *
  * @param       channel         Input parameter for the logical channel ID.
  *
- * @return      This function returns 0 on success or negative error code on
+ * Return:      This function returns 0 on success or negative error code on
  *              fail.
  */
 int32_t ipu_enable_channel(ipu_channel_t channel)
@@ -1139,7 +1139,7 @@
  * @param       wait_for_stop   Flag to set whether to wait for channel end
  *                              of frame or return immediately.
  *
- * @return      This function returns 0 on success or negative error code on
+ * Return:      This function returns 0 on success or negative error code on
  *              fail.
  */
 int32_t ipu_disable_channel(ipu_channel_t channel)
diff --git a/drivers/video/imx/ipu_disp.c b/drivers/video/imx/ipu_disp.c
index 4506989..144322e 100644
--- a/drivers/video/imx/ipu_disp.c
+++ b/drivers/video/imx/ipu_disp.c
@@ -822,7 +822,7 @@
  *
  * @param       sig             Bitfield of signal polarities for LCD interface.
  *
- * @return      This function returns 0 on success or negative error code on
+ * Return:      This function returns 0 on success or negative error code on
  *              fail.
  */
 
@@ -1171,7 +1171,7 @@
  *
  * @param       alpha           Global alpha value.
  *
- * @return      Returns 0 on success or negative error code on fail
+ * Return:      Returns 0 on success or negative error code on fail
  */
 int32_t ipu_disp_set_global_alpha(ipu_channel_t channel, unsigned char enable,
 				  uint8_t alpha)
@@ -1226,7 +1226,7 @@
  *
  * @param       colorKey        24-bit RGB color for transparent color key.
  *
- * @return      Returns 0 on success or negative error code on fail
+ * Return:      Returns 0 on success or negative error code on fail
  */
 int32_t ipu_disp_set_color_key(ipu_channel_t channel, unsigned char enable,
 			       uint32_t color_key)
diff --git a/drivers/video/imx/mxc_ipuv3_fb.c b/drivers/video/imx/mxc_ipuv3_fb.c
index 6cdbbaf..98228f2 100644
--- a/drivers/video/imx/mxc_ipuv3_fb.c
+++ b/drivers/video/imx/mxc_ipuv3_fb.c
@@ -428,7 +428,7 @@
  * structures.  This includes information such as bits per pixel,
  * color maps, screen width/height and RGBA offsets.
  *
- * @return      Framebuffer structure initialized with our information
+ * Return:      Framebuffer structure initialized with our information
  */
 static struct fb_info *mxcfb_init_fbinfo(void)
 {
@@ -479,7 +479,7 @@
  * this routine: Framebuffer initialization, Memory allocation and
  * mapping, Framebuffer registration, IPU initialization.
  *
- * @return      Appropriate error code to the kernel common code
+ * Return:      Appropriate error code to the kernel common code
  */
 static int mxcfb_probe(struct udevice *dev, u32 interface_pix_fmt,
 		       uint8_t disp, struct fb_videomode const *mode)
diff --git a/drivers/video/meson/simplefb_common.h b/drivers/video/meson/simplefb_common.h
index 9ea7b04..d0cc1b4 100644
--- a/drivers/video/meson/simplefb_common.h
+++ b/drivers/video/meson/simplefb_common.h
@@ -14,7 +14,7 @@
  *
  * @blob: device tree blob
  * @pipeline: display pipeline
- * @return device node offset in blob, or negative values if failed
+ * Return: device node offset in blob, or negative values if failed
  */
 int meson_simplefb_fdt_match(void *blob, const char *pipeline);
 
diff --git a/drivers/video/panel-uclass.c b/drivers/video/panel-uclass.c
index bb2eaae..1f7e20e 100644
--- a/drivers/video/panel-uclass.c
+++ b/drivers/video/panel-uclass.c
@@ -26,7 +26,7 @@
  * @dev:	Panel device containing the backlight to update
  * @percent:	Brightness value (0=off, 1=min brightness,
  *		100=full brightness)
- * @return 0 if OK, -ve on error
+ * Return: 0 if OK, -ve on error
  */
 int panel_set_backlight(struct udevice *dev, int percent)
 {
diff --git a/drivers/video/rockchip/rk_hdmi.h b/drivers/video/rockchip/rk_hdmi.h
index 859a0b9..200dbae 100644
--- a/drivers/video/rockchip/rk_hdmi.h
+++ b/drivers/video/rockchip/rk_hdmi.h
@@ -33,7 +33,7 @@
  * @dev:	device
  * @buf:	output buffer for the EDID
  * @buf_size:	number of bytes in the buffer
- * @return number of bytes read if OK, -ve if something went wrong
+ * Return: number of bytes read if OK, -ve if something went wrong
  */
 int rk_hdmi_read_edid(struct udevice *dev, u8 *buf, int buf_size);
 
@@ -55,7 +55,7 @@
  * rk_hdmi_of_to_plat() - common of_to_plat implementation
  *
  * @dev:	device
- * @return 0 if OK, -ve if something went wrong
+ * Return: 0 if OK, -ve if something went wrong
  */
 int rk_hdmi_of_to_plat(struct udevice *dev);
 
@@ -68,7 +68,7 @@
  * 3. initialises the Designware HDMI PHY
  *
  * @dev:	device
- * @return 0 if OK, -ve if something went wrong
+ * Return: 0 if OK, -ve if something went wrong
  */
 int rk_hdmi_probe(struct udevice *dev);
 
diff --git a/drivers/video/rockchip/rk_vop.c b/drivers/video/rockchip/rk_vop.c
index fe05748..bc98ab6 100644
--- a/drivers/video/rockchip/rk_vop.c
+++ b/drivers/video/rockchip/rk_vop.c
@@ -238,7 +238,7 @@
  * @fbbase:	Frame buffer address
  * @ep_node:	Device tree node to process - this is the offset of an endpoint
  *		node within the VOP's 'port' list.
- * @return 0 if OK, -ve if something went wrong
+ * Return: 0 if OK, -ve if something went wrong
  */
 static int rk_display_init(struct udevice *dev, ulong fbbase, ofnode ep_node)
 {
diff --git a/drivers/video/rockchip/rk_vop.h b/drivers/video/rockchip/rk_vop.h
index 53a79c0..0528fb2 100644
--- a/drivers/video/rockchip/rk_vop.h
+++ b/drivers/video/rockchip/rk_vop.h
@@ -32,7 +32,7 @@
  * successfully initialised).
  *
  * @dev:	device
- * @return 0 if OK, -ve if something went wrong
+ * Return: 0 if OK, -ve if something went wrong
  */
 int rk_vop_probe(struct udevice *dev);
 
@@ -44,7 +44,7 @@
  *     (32 BPP) x VIDEO_ROCKCHIP_MAX_XRES x VIDEO_ROCKCHIP_MAX_YRES
  *
  * @dev:	device
- * @return 0 (always OK)
+ * Return: 0 (always OK)
  */
 int rk_vop_bind(struct udevice *dev);
 
diff --git a/drivers/video/sunxi/simplefb_common.h b/drivers/video/sunxi/simplefb_common.h
index f4c5e74..10292a0 100644
--- a/drivers/video/sunxi/simplefb_common.h
+++ b/drivers/video/sunxi/simplefb_common.h
@@ -14,7 +14,7 @@
  *
  * @blob: device tree blob
  * @pipeline: display pipeline
- * @return device node offset in blob, or negative values if failed
+ * Return: device node offset in blob, or negative values if failed
  */
 int sunxi_simplefb_fdt_match(void *blob, const char *pipeline);
 
diff --git a/drivers/video/tegra.c b/drivers/video/tegra.c
index d60132e..3f9fcd0 100644
--- a/drivers/video/tegra.c
+++ b/drivers/video/tegra.c
@@ -262,7 +262,7 @@
  * @param blob			Device tree blob
  * @param priv			Driver's private data
  * @param default_lcd_base	Default address of LCD frame buffer
- * @return 0 if ok, -1 on error (unsupported bits per pixel)
+ * Return: 0 if ok, -1 on error (unsupported bits per pixel)
  */
 static int tegra_display_probe(const void *blob, struct tegra_lcd_priv *priv,
 			       void *default_lcd_base)
diff --git a/drivers/video/ti/am335x-fb.c b/drivers/video/ti/am335x-fb.c
index 8b41dac..680ea47 100644
--- a/drivers/video/ti/am335x-fb.c
+++ b/drivers/video/ti/am335x-fb.c
@@ -139,7 +139,7 @@
  *
  * @dpll_data: struct dpll_data pointer for the DPLL
  * @rate:      New DPLL clock rate
- * @return rounded rate and the computed m, n and div values in the dpll_data
+ * Return: rounded rate and the computed m, n and div values in the dpll_data
  *         structure, or -ve error code.
  */
 static ulong am335x_dpll_round_rate(struct dpll_data *dd, ulong rate)
@@ -189,7 +189,7 @@
  *
  * @am335x_lcdhw: Base address of the LCD controller registers.
  * @rate:         New clock rate in Hz.
- * @return new rate, or -ve error code.
+ * Return: new rate, or -ve error code.
  */
 static ulong am335x_fb_set_pixel_clk_rate(struct am335x_lcdhw *regs, ulong rate)
 {
diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
index e8600b2..c8c3fd3 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
@@ -21,7 +21,7 @@
 /**
  * get_bmp_col_16bpp() - Convert a colour-table entry into a 16bpp pixel value
  *
- * @return value to write to the 16bpp frame buffer for this palette entry
+ * Return: value to write to the 16bpp frame buffer for this palette entry
  */
 static uint get_bmp_col_16bpp(struct bmp_color_table_entry cte)
 {
diff --git a/drivers/video/videomodes.c b/drivers/video/videomodes.c
index ed7373e..69ef736 100644
--- a/drivers/video/videomodes.c
+++ b/drivers/video/videomodes.c
@@ -384,7 +384,7 @@
  * @param t		The EDID detailed timing to be converted
  * @param mode		Returns the converted timing
  *
- * @return 0 on success, or a negative errno on error
+ * Return: 0 on success, or a negative errno on error
  */
 int video_edid_dtd_to_ctfb_res_modes(struct edid_detailed_timing *t,
 				     struct ctfb_res_modes *mode)
